--KEYS 和 ARGV 都是一会调用时候传进来的参数，tonumber 就是把字符串转为数字，redis.call 就是执行具体的 redis 指令
--具体流程：
--1.首先获取到传进来的 key 以及 限流的 count 和时间 time。
--2.通过 get 获取到这个 key 对应的值，这个值就是当前时间窗内这个接口可以访问多少次。
--3.如果是第一次访问，此时拿到的结果为 nil，否则拿到的结果应该是一个数字，所以接下来就判断，如果拿到的结果是一个数字，并且这个数字还大于 count，那就说明已经超过流量限制了，那么直接返回查询的结果即可。
--4.如果拿到的结果为 nil，说明是第一次访问，此时就给当前 key 自增 1，然后设置一个过期时间。
--5.最后把自增 1 后的值返回就可以了。

local stockKey = KEYS[1]
local quantity = ARGV[1]
local currentStock = tonumber(redis.call('get', stockKey))

redis.log(redis.LOG_DEBUG,stockKey,quantity,currentStock)

--if currentStock == nil then
--  return 0  -- 商品不存在
--end

if currentStock >= quantity then
    redis.call('decrby', stockKey, quantity)
    return 1  -- 扣减成功
else
    return 0  -- 库存不足
end